3.4 流量控制与可靠传输机制

下载 .md

流量控制与滑动窗口机制

## 停止-等待协议(S-W)

  1. 滑动窗口机制 -> WT=1,WR=1W_T=1, W_R=1
  2. 确认机制 -> 确认帧ACK_i
  3. 重传机制 -> 超时重传
  4. 帧编号 -> 1bit给帧编号; WT+WR21W_T+W_R ≤ 2^{1} 数据帧传输的多种情况
    1. 正常传输
    2. 数据帧丢失
    3. 确认帧丢失 -> 接收方窗口滑动后接收上一帧, 重发确认帧
    4. 数据帧有误 -> 接收方直接丢弃, 不返回确认帧

注意发送方接收正确确认帧时滑动窗口, 接收方接收正确数据帧时滑动窗口

后退N帧协议(GBN)

  1. 滑动窗口机制 -> WT>1,WR=1W_T>1, W_R=1
  2. 确认机制 -> 确认帧
  3. 重传机制 -> 超时重传
  4. 帧编号 -> nbit给帧编号; WT+WR2nW_T+W_R ≤ 2^{n}
  5. 特殊规则 -> 确认帧 -> 接收方可以只返回最后一个帧的确认帧ACK_i(ACK_i表示已接收i号帧及其之前的所有帧; 可以不是发送方滑动窗口的尾帧, 此时便是发送方的滑动窗口少前进n帧再发一遍) 超时重传 -> 发送方超时未收到ACK_i, 则重传i号帧, 及其之后的所有帧; 可能该帧”非法”, 此时接收方会再发合适的ACK_i

如果不满足WT+WR2nW_T+W_R ≤ 2^{n}, 显然数据帧在超时重传时可能直接少一组错位; 满足改条件的确认帧超时, 重传一定落在窗口外

选择重传协议(SR)

  1. 滑动窗口机制 -> WT>1,WR>1W_T>1, W_R>1
  2. 确认机制 -> 确认帧ACK_i, 且不支持累计确认
  3. 重传机制 -> 超时重传, 否认帧后立即重传
  4. 帧编号 -> nbit给帧编号; WT+WR2nW_T+W_R ≤ 2^{n}
  5. 特殊规则 -> 否认帧NAK_i -> 检测出i号帧有差错, 需要丢弃该帧, 并返回否认帧NAK_i 请求重传 -> 收到NAK_i后重传i号帧 要求WRWTW_R≤W_T, 接收窗口小于发送窗口

三种协议的信道利用率

  1. S-W协议中, 理想情况下信道利用率为U=TDTD+RTT+TAU=\frac{T_{D}}{T_{D}+RTT+T_{A}}
  2. GBN,SR两种协议, 理想情况下信道利用率为U=NTTD+RTT+TAU=\frac{N ⋅ T}{TD+RTT+TA}

信道利用率最大为1, 但是公式2计算可能大于1; 信道利用率的意义其实是实际传输速率和理想传输速率的比值

协议的特点

  1. S-W协议不属于滑动窗口协议; 滑动窗口协议 -> 任意时刻, 发送方维护一组连续的, 允许发送的帧序号, 成为发送窗口
  2. ACK -> ACKnowledge for frame; NAK -> Negative AKnowledge for frame
  3. ARQ协议,Automatic Repeat Request,自动重传请求, 包括以上三种; 如果是连续ARQ协议就是指的后两者
  4. WR=1W_R=1时, 接收方接收到帧后才允许接受下一帧, 能保证帧的有序接收
  5. 在数据链路层的滑动窗口协议中, 窗口大小在传输过程中是固定的(区别与传输层)

可靠传输机制

  1. 确认机制
  2. 超时重传机制

总结

  1. 在求最值时, 列出式子再看正负相关关系 -> 比如, 数据帧长不定时, 信道利用率与数据帧长成正比, 那么在最高的信道利用率情况下, 求帧编号位数就需要按照最小的数据帧长来算
  2. 需要注意有没有确认帧长
  3. 由于在相同的帧序号位数下, 滑动窗口协议中SR较GBN协议发送窗口小, N小, 则信道利用率上限也小